Over the past several years, there has been a significant increase in the use of computer networks for data communications. Data communications networks were developed to allow users to share computer and information resources and to provide a common communications system. A communications network provides common transmission, multiplexing, and switching functions that enable users to transport data between many sources and many destinations. Under ideal circumstances, the data that arrives at the destination is identical to the data sent. With the wide use of computer networks in business and industry, there has been an increasing use of internetworking which allows users of one network to access and share the resources of computers and databases associated with other networks. At the present time, the Internet has rapidly become the internetwork of choice for millions of users.
Two commonly used categories of networks are Local Area Networks (LAN) and Wide Area Networks (WAN). LANs often parallel organizational structures. For example, a LAN may connect the computers of a single workgroup, all of the groups in a department on a floor of a building, or all of the departments of a division occupying an office building. By contrast, WANs are communication networks that are regional or nationwide in geographic area, with minimal distances typical of that between major metropolitan areas. Computers that are connected to a LAN or a WAN use data packets to communicate information. A packet contains a few hundred to a few thousand bytes of data and generally two addresses--a source address and a destination address.
In order for computers from different networks to communicate and share information, protocols have been established. Protocols are the conventions and procedures used by computers to communicate with each other. Protocols are used for multiple purposes such as to establish and remove connections, ensure reliable delivery, provide necessary information for delivery of information, and format the information for proper interpretation at the destination. One of the standard protocols currently in use, particularly in connection with the Internet, is the Transmission Control Protocol and Internet Protocol (TCP/IP). Another communication environment used in network computing is the Network Basic Input/Output System (NetBIOS). NetBIOS is a programming gateway to services that allow computer applications and devices to communicate. Typically, data exchange occurs between NetBIOS applications residing within separate machines connected by a LAN.
In the context of communications protocols, there are generally two types of operations for data communication: connectionless protocols and connection-oriented protocols. With connection-oriented operations, a user and a network establish a logical connection before the transfer of data occurs. Typically, some type of relationship is maintained between the data units being transferred through the user/network connection. With connectionless-mode operations, no logical connection between the user and the network is established prior to the data transmission. The data units are transmitted as independent units.
Connection-oriented service requires a three-way agreement between the two end users and the network. During the connection establishment, all three parties store information about each other, such as addresses and quality of service functions. Once data transfer begins, it is not necessary for Protocol Data Units (PDUs) to carry significant overhead Protocol Control Information (PCI). Instead, only an abbreviated identifier is needed to allow the parties to access necessary tables and look up the full addresses and quality of service features. Connection-oriented service also provides for the acknowledgment of all data units. Additionally, if problems occur during the transmission, a connection-oriented protocol provides mechanisms for the retransmission of the units in error. Moreover, most connection-oriented protocols ensure that the data arrives in the proper order at the final destination.
Connectionless operations manage user PDUs as independent and separate entities. No relationship is maintained between successive data transfers, and minimal records are maintained concerning the ongoing communications process through the network. In contrast to connection-oriented service, connectionless service provides neither positive acknowledgments nor negative acknowledgments regarding the data transmission. Thus, by its very nature, connectionless service can achieve significant independence from: (a) specific protocols within a subnetwork, (b) subnetworks from each other, and (c) subnetworks from user-specific protocols. Additionally, connectionless networks are not concerned with flow control or any type of resequencing operations at the final destination. Connectionless networks may also allow multiple copies of the same message to arrive via bridges. As noted, each PDU is handled as an independent entity such that data units can take different routes to avoid failed nodes or congestion at a point in the network. However, connectionless protocols do consume more overhead than their connection-oriented counterparts in relation to the length of the headers and in proportion to the amount of user data in the PDU.
Particularly in the context of organizational networks, data distribution systems are used to distribute files and maintain file version control within the networked computers. Several existing data distribution packages are available for this purpose, such as Frye Utilities for Networks, IBM NetView DM, Microsoft System Management Server, and Norton Administrator for Networks. These distribution packages operate on a variety of operating platforms such as DOS, Windows for Workgroups, Windows NT, OS/2, MacIntosh, etc. Moreover, certain of these distribution packages can operate on more than one transport protocol, including both NetBIOS and TCP/IP.
A significant limitation of each of the above-referenced file distribution packages relates to the method in which data is distributed. Specifically, in each of these distribution packages, all data is distributed to multiple client computers one at a time. Thus, data sent to one hundred client computers, for example, must be sent one hundred times (once to each computer) and thus takes one hundred times longer than would be required to send the data to one client computer. Consequently, when large numbers of client computers associated with the network require a data distribution, existing file distribution systems require a significant amount of network bandwidth and increased distribution time.